<template>
  <div id="aCoursesList" class="bg-fa of">
    <!-- 课程详情 开始 -->
    <section class="container">
      <!-- 课程所属分类 开始 -->
      <section class="path-wrap txtOf hLh30">
        <a href="/" title class="c-999 fsize14">首页</a>
        \
        <a href="/course" title class="c-999 fsize14">课程列表</a>
        \
        <a
          :href="`/course?subjectParentId=${courseInfo.oneSubjectId}`"
          class="c-333 fsize14"
          >{{ courseInfo.oneSubject }}</a
        >
        \
        <a
          :href="`/course?subjectId=${courseInfo.twoSubjectId}&subjectParentId=${courseInfo.oneSubjectId}`"
          class="c-333 fsize14"
          >{{ courseInfo.twoSubject }}</a
        >
      </section>
      <!-- /课程所属分类 结束 -->

      <!-- 课程基本信息 开始 -->
      <div>
        <article class="c-v-pic-wrap" style="height: 357px">
          <section id="videoPlay" class="p-h-video-box">
            <img
              :src="courseInfo.cover"
              :alt="courseInfo.title"
              class="dis c-v-pic"
            />
          </section>
        </article>
        <aside class="c-attr-wrap">
          <section class="ml20 mr15">
            <h2 class="hLh30 txtOf mt15">
              <span class="c-fff fsize24">{{ courseInfo.title }}</span>
            </h2>
            <section class="c-attr-jg">
              <span class="c-fff">价格：</span>
              <b class="c-yellow" style="font-size: 24px"
                >￥{{ courseInfo.price === 0 ? "免费" : courseInfo.price }}</b
              >
            </section>
            <section class="c-attr-mt c-attr-undis">
              <span class="c-fff fsize14"
                >主讲：{{ courseInfo.teacherName }}&nbsp;&nbsp;&nbsp;</span
              >
            </section>
            <section class="c-attr-mt of">
              <span class="ml10 vam">
                <em
                  class="icon18 sc-end scIcon"
                  v-if="!isCollect"
                  style="opacity: 0.2"
                />
                <em class="icon18 sc-end scIcon" v-else />
                <a
                  class="c-fff vam"
                  title="收藏"
                  href="#"
                  @click="createCollect()"
                  >收藏</a
                >
              </span>
            </section>
            <section
              class="c-attr-mt"
              v-if="!whetherBuy && courseInfo.price > 0"
            >
              <a
                href="#"
                title="立即购买"
                class="comm-btn c-btn-3"
                @click="buyCourse"
                >立即购买</a
              >
            </section>
            <section class="c-attr-mt" v-else>
              <a
                href="#"
                title="点击观看"
                class="comm-btn c-btn-3"
                @click="buyCourse"
                >点击观看</a
              >
            </section>
          </section>
        </aside>
        <aside class="thr-attr-box">
          <ol class="thr-attr-ol">
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">购买数</span>
                <br />
                <h6 class="c-fff f-fM mt10">{{ courseInfo.buyCount }}</h6>
              </aside>
            </li>
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">课时数</span>
                <br />
                <h6 class="c-fff f-fM mt10">{{ courseInfo.lessonNum }}</h6>
              </aside>
            </li>
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">浏览数</span>
                <br />
                <h6 class="c-fff f-fM mt10">{{ courseInfo.viewCount }}</h6>
              </aside>
            </li>
          </ol>
        </aside>
        <div class="clear" />
      </div>
      <!-- /课程基本信息 结束 -->

      <div class="mt20 c-infor-box">
        <article class="fl col-7">
          <section class="mr30">
            <div class="i-box">
              <div>
                <section id="c-i-tabTitle" class="c-infor-tabTitle c-tab-title">
                  <a name="c-i" class="current" title="课程详情">课程详情</a>
                </section>
              </div>
              <article class="ml10 mr10 pt20">
                <!-- 课程详情介绍 开始 -->
                <div>
                  <h6 class="c-i-content c-infor-title">
                    <span>课程介绍</span>
                  </h6>
                  <div class="course-txt-body-wrap">
                    <section
                      class="course-txt-body"
                      v-html="courseInfo.courseDesc"
                    >
                      <!-- 将内容中的html翻译过来 -->
                    </section>
                  </div>
                </div>
                <!-- /课程详情介绍 结束 -->

                <!-- 课程大纲 开始-->
                <div class="mt50">
                  <h6 class="c-g-content c-infor-title">
                    <span>课程大纲</span>
                  </h6>
                  <section class="mt20">
                    <div class="lh-menu-wrap">
                      <menu id="lh-menu" class="lh-menu mt10 mr10">
                        <ul>
                          <!-- 课程章节目录 -->
                          <li
                            class="lh-menu-stair"
                            v-for="item in totalChapter"
                            :key="item.id"
                          >
                            <a :title="item.title" class="current-1">
                              <em class="lh-menu-i-1 icon18 mr10" />{{
                                item.title
                              }}
                            </a>
                            <ol class="lh-menu-ol" style="display: block">
                              <li
                                class="lh-menu-second ml30"
                                v-for="data in item.children"
                              >
                                <a
                                  :title="data.title"
                                  :href="
                                    whetherBuy ||
                                    data.free ||
                                    courseInfo.price === 0
                                      ? `/player/${data.videoSourceId}`
                                      : 'javascript:void(0)'
                                  "
                                >
                                  <span class="fr" v-if="data.free">
                                    <i class="free-icon vam mr10">免费试听</i>
                                  </span>
                                  <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em
                                  >{{ data.title }}
                                </a>
                              </li>
                            </ol>
                          </li>
                        </ul>
                      </menu>
                    </div>
                  </section>
                  <!-- /课程大纲 结束 -->
                </div>
              </article>
            </div>
          </section>
        </article>
        <aside class="fl col-3">
          <div class="i-box">
            <!-- 主讲讲师 开始-->
            <div>
              <section class="c-infor-tabTitle c-tab-title">
                <a title href="javascript:void(0)">主讲讲师</a>
              </section>
              <section class="stud-act-list">
                <ul style="height: auto">
                  <li>
                    <div class="u-face">
                      <a
                        :href="`/teacher/${courseInfo.teacherId}`"
                        target="_blank"
                      >
                        <img
                          :src="courseInfo.avatar"
                          width="50"
                          height="50"
                          alt
                        />
                      </a>
                    </div>
                    <section class="hLh30 txtOf">
                      <a
                        :href="`/teacher/${courseInfo.teacherId}`"
                        class="c-333 fsize16 fl"
                        target="_blank"
                        >{{ courseInfo.teacherName }}</a
                      >
                    </section>
                    <section class="hLh20 txtOf">
                      <span class="c-999">{{
                        courseInfo.level === 1 ? "高级讲师" : "首席讲师"
                      }}</span>
                    </section>
                  </li>
                </ul>
              </section>
            </div>
            <!-- /主讲讲师 结束 -->
          </div>
        </aside>
        <div class="clear" />
      </div>
    </section>
    <!-- /课程详情 结束 -->
  </div>
</template>

<script>
import courseApi from "~/api/course/course";
import collectApi from "~/api/collect/collect";
import cookie from "js-cookie";
import orderApi from "~/api/order/order";

export default {
  data() {
    return {
      whetherBuy: false,
      // 是否收藏
      isCollect: false,
    };
  },
  async asyncData(page) {
    // 根据课程id查询课程详细信息
    let result = await courseApi.findById(page.route.params.id);
    return {
      courseInfo: result.data.courseInfo,
      totalChapter: result.data.totalChapter,
    };
  },
  created() {
    let token = cookie.get("guli-cookie-jwt");
    if (token) {
      // 判断是否购买该课程
      this.ifBuyCourse();
      // 收藏状态
      this.ifCollecd();
    }
  },
  methods: {
    // 判断该商品是否已经收藏
    ifCollecd() {
      collectApi.existCollect(this.courseInfo.id).then((result) => {
        this.isCollect = result.data;
      });
    },
    // 收藏或取消收藏该商品
    createCollect() {
      if (!this.isCollect) {
        // 创建收藏
        collectApi.createCollect(this.courseInfo.id).then((result) => {
          // 刷新
          this.isCollect = !this.isCollect;
        });
      } else {
        // 取消收藏
        collectApi.delCollect(this.courseInfo.id).then((result) => {
          // 刷新
          this.isCollect = !this.isCollect;
        });
      }
    },
    // 购买课程，创建订单，跳转订单页面
    buyCourse() {
      // 判断课程是否购买
      if (!this.whetherBuy) {
        // 创建订单
        orderApi.createOrder(this.$route.params.id).then((result) => {
          if (result.code === 20000) {
            // 跳转订单页
            this.$router.push({ path: "/order/" + result.data });
            return false;
          }
          this.$message.error("创建订单失败，" + result.message);
        });
      }
    },
    // 判断是否购买该课程
    ifBuyCourse() {
      orderApi.ifState(this.courseInfo.id).then((result) => {
        this.whetherBuy = result.data;
      });
    },
  },
};
</script>
